লারাভেল এলোকোয়েন্টের প্রাথমিক ধারণা (Eloquent ORM Primary Concept)

Web Development - লারাভেল (Laravel) - লারাভেল ইলোকোয়েন্ট ওআরএম (Laravel Eloquent ORM) |
7
7

লারাভেল (Laravel) ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো এলোকোয়েন্ট ORM (Object-Relational Mapping)। এটি একটি শক্তিশালী এবং সহজ ব্যবস্থাপনা সিস্টেম যা ডেটাবেসের সাথে কাজ করার জন্য অত্যন্ত কার্যকর। এলোকোয়েন্ট (Eloquent) ORM এর মাধ্যমে, আপনি ডেটাবেসের টেবিলের সাথে সম্পর্কিত মডেল তৈরি করে সহজে ডেটা পরিচালনা করতে পারেন, যেখানে SQL কোড লেখার প্রয়োজন হয় না। এটি ডেভেলপারদের জন্য ডেটাবেস অপারেশন অনেক সহজ করে তোলে।

এলোকোয়েন্ট ORM কি?

এলোকোয়েন্ট ORM (Eloquent Object-Relational Mapping) হল লারাভেল এর অন্তর্নিহিত একটি টুল যা ডেটাবেস টেবিলের সাথে PHP অবজেক্ট মডেল তৈরি করে। এটি ডেটাবেসের রেকর্ডগুলির সাথে কাজ করার জন্য PHP ক্লাস ব্যবহার করে এবং SQL কোড কমানোর মাধ্যমে ডেটা পরিচালনা করতে সাহায্য করে। এলোকোয়েন্ট ORM ব্যবহার করে আপনি সহজে ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশন করতে পারেন।

এলোকোয়েন্ট ORM এর প্রাথমিক ধারণা

এলোকোয়েন্ট ORM এর মাধ্যমে ডেটাবেস টেবিলের সাথে সম্পর্কিত মডেল তৈরি করতে হয়। প্রতিটি মডেল একটি নির্দিষ্ট টেবিলের প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি আপনার ডেটাবেসে একটি posts টেবিল থাকে, তবে আপনি Post নামক একটি মডেল তৈরি করবেন যা সেই টেবিলের জন্য কাজ করবে।

মডেল তৈরি করা

লারাভেলে মডেল তৈরি করার জন্য php artisan make:model কমান্ড ব্যবহার করা হয়। উদাহরণ:

php artisan make:model Post

এটি app/Models/Post.php ফাইলে একটি নতুন মডেল তৈরি করবে।

মডেল এবং টেবিলের সম্পর্ক

এলোকোয়েন্ট ORM এর একটি প্রধান সুবিধা হলো, মডেল এবং টেবিলের মধ্যে সম্পর্ক নির্ধারণ করা সহজ। সাধারণভাবে, লারাভেল মডেল নামের প্লুরাল ফর্মটি ডিফল্টভাবে টেবিলের নাম হিসেবে ধরে নেয়। যেমন, Post মডেলটির সাথে posts টেবিল সম্পর্কিত।

CRUD অপারেশন

এলোকোয়েন্ট ORM ব্যবহার করে আপনি ডেটাবেসে CRUD অপারেশন খুব সহজে সম্পাদন করতে পারেন।

Create (তৈরি করা)

নতুন রেকর্ড তৈরি করতে create() মেথড ব্যবহার করা হয়:

Post::create([
    'title' => 'New Post',
    'content' => 'This is the content of the post.',
]);

এটি নতুন একটি পোস্ট ডেটাবেসে সংরক্ষণ করবে।

Read (পড়ুন)

ডেটাবেস থেকে ডেটা পড়তে find() বা all() মেথড ব্যবহার করা হয়:

$post = Post::find(1);  // id = 1 এর পোস্ট
$posts = Post::all();   // সব পোস্ট

Update (আপডেট করা)

ডেটাবেসে একটি রেকর্ড আপডেট করতে update() মেথড ব্যবহার করা হয়:

$post = Post::find(1);
$post->update([
    'title' => 'Updated Title',
    'content' => 'Updated content.',
]);

Delete (মুছে ফেলা)

ডেটাবেস থেকে একটি রেকর্ড মুছে ফেলতে delete() মেথড ব্যবহার করা হয়:

$post = Post::find(1);
$post->delete();

সম্পর্ক (Relationships) স্থাপন

এলোকোয়েন্ট ORM আপনাকে ডেটাবেস টেবিলের মধ্যে সম্পর্ক (like, one-to-many, many-to-many) স্থাপন করার সুবিধা দেয়।

One-to-One সম্পর্ক

ধরা যাক, User মডেলের সাথে একে এক Profile সম্পর্ক রয়েছে। এলোকোয়েন্টে আপনি এটি এভাবে তৈরি করবেন:

class User extends Model
{
    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
}

One-to-Many সম্পর্ক

একটি Post মডেল এবং তার সাথে সম্পর্কিত অনেক Comment মডেল থাকতে পারে। এটি এভাবে নির্ধারণ করা হয়:

class Post extends Model
{
    public function comments()
    {
        return $this->hasMany(Comment::class);
    }
}

Many-to-Many সম্পর্ক

এলোকোয়েন্টে belongsToMany মেথড ব্যবহার করে many-to-many সম্পর্ক তৈরি করা যায়। যেমন, একটি User মডেল এবং Role মডেলের মধ্যে many-to-many সম্পর্ক:

class User extends Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}

মডেল ফিল্ড ভ্যালিডেশন

এলোকোয়েন্ট ORM আপনাকে ডেটাবেসে ইনপুট করার আগে মডেল ফিল্ড ভ্যালিডেশন করার সুযোগ দেয়। আপনি fillable বা guarded প্রপার্টি ব্যবহার করে কনফিগার করতে পারেন কোন ফিল্ডগুলো মডেলে অ্যাসাইন করা যাবে।

class Post extends Model
{
    protected $fillable = ['title', 'content'];
}

এভাবে, শুধু title এবং content ফিল্ডে মান ইনপুট করা যাবে, অন্য কোনো ফিল্ড ইনপুট করা যাবে না।


সারাংশ

এলোকোয়েন্ট ORM একটি শক্তিশালী টুল যা লারাভেল ডেভেলপারদের ডেটাবেসের সাথে সম্পর্কিত কাজগুলো খুব সহজে করতে সহায়তা করে। মডেল তৈরির মাধ্যমে আপনি ডেটাবেসের টেবিলগুলোর সাথে সম্পর্ক স্থাপন করতে পারেন এবং CRUD অপারেশনসহ বিভিন্ন জটিল সম্পর্ক ম্যানেজ করতে পারবেন। এলোকোয়েন্ট ORM ডেটাবেসের সাথে কাজ করার ক্ষেত্রে একটি সিম্পল, ক্লিন এবং উন্নত পদ্ধতি প্রদান করে যা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং দক্ষ করে তোলে।

Content added By
Promotion